package com.hjm.project.gears_info.service.impl;

import java.util.List;

import com.hjm.common.exception.BusinessException;
import com.hjm.common.utils.DateUtils;
import com.hjm.common.utils.security.ShiroUtils;
import com.hjm.project.gears_info.domain.GearsInfo;
import com.hjm.project.gears_info.mapper.GearsInfoMapper;
import com.hjm.project.gears_info.service.IGearsInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hjm.common.utils.text.Convert;
import org.springframework.transaction.annotation.Transactional;

/**
 * 服务商档位信息（分润标准）Service业务层处理
 * 
 * @author LOVE
 * @date 2020-11-19
 */
@Service
public class GearsInfoServiceImpl implements IGearsInfoService
{
    @Autowired
    private GearsInfoMapper gearsInfoMapper;

    /**
     * 查询服务商档位信息（分润标准）
     * 
     * @param paySection 服务商档位信息（分润标准）ID
     * @return 服务商档位信息（分润标准）
     */
    @Override
    public GearsInfo selectGearsInfoById(String grade)
    {
        return gearsInfoMapper.selectGearsInfoById(grade);
    }

    /**
     * 查询服务商档位信息（分润标准）列表
     * 
     * @param gearsInfo 服务商档位信息（分润标准）
     * @return 服务商档位信息（分润标准）
     */
    @Override
    public List<GearsInfo> selectGearsInfoList(GearsInfo gearsInfo)
    {
        return gearsInfoMapper.selectGearsInfoList(gearsInfo);
    }

    /**
     * 新增服务商档位信息（分润标准）
     * 
     * @param gearsInfo 服务商档位信息（分润标准）
     * @return 结果
     */

    @Transactional
    @Override
    public int insertGearsInfo(GearsInfo gearsInfo) throws Exception {
        GearsInfo gearsInfo1 = gearsInfoMapper.selectGearsInfoById(gearsInfo.getGrade());
        if (gearsInfo1 != null) {
            throw  new BusinessException("档位已存在不可重复添加");
        }
        gearsInfo.setAddMan(ShiroUtils.getSysUser().getUserName());
        gearsInfo.setCreateDate(DateUtils.getTime());
        return gearsInfoMapper.insertGearsInfo(gearsInfo);
    }

    /**
     * 修改服务商档位信息（分润标准）
     * 
     * @param gearsInfo 服务商档位信息（分润标准）
     * @return 结果
     */
    @Transactional
    @Override
    public int updateGearsInfo(GearsInfo gearsInfo) {
        //活动DS（分润比例） 不能大于当前的档位比例
        gearsInfo.setUpdateMan(ShiroUtils.getSysUser().getUserName());
        gearsInfo.setUpdateDate(DateUtils.getTime());
        return gearsInfoMapper.updateGearsInfo(gearsInfo);
    }

    /**
     * 删除服务商档位信息（分润标准）对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteGearsInfoByIds(String ids)
    {
        return gearsInfoMapper.deleteGearsInfoByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除服务商档位信息（分润标准）信息
     * 
     * @param paySection 服务商档位信息（分润标准）ID
     * @return 结果
     */
    @Override
    public int deleteGearsInfoById(String paySection)
    {
        return gearsInfoMapper.deleteGearsInfoById(paySection);
    }

}
